In computer operations, certain transactions require security because of the nature of the data being transferred. The data may commonly be encrypted using, for example, encryption by a public key and decryption by a private key. When devices possess the necessary keys, then data can be securely exchanged over an open bus.
However, the establishment of the secure transaction requires that a key exchange between the devices be made over some communication channel. In particular, the public key for a first device is provided to a second device in the transaction such that the second device may encrypt a message to the first. The transfer of a public key may be detected if, for example, the system has been compromised by a virus or other attack software. While the improper detection of a public key does not comprise the security of a message encrypted using such public key, the key does provide a unique identifier, which could be used to improperly track activities by a system and thereby creating privacy and other security concerns. In safeguarding privacy, the primary defense is against attack software. Protection from hardware attacks is not a direct concern for privacy as privacy may be considered to be compromised if an attacker has obtained physical access to the system.
For the establishment of secure transactions, there may be concern whether the endpoint (receiving device) is the intended target for a transaction. If a key exchange can be redirected to a remote system with the same model device, it may appear that a secure channel has been set up, when in fact an attacker controls the endpoint. This is commonly known as the “man-in-the-middle attack”. Such an attack is typically handled in a closed system by signing electronically the public key of the device. However, signing proves to be difficult to implement in an open system where devices from many parties need to be integrated, and new devices are constantly being developed.
The open bus of a computer system and the interface for the bus do not conventionally include a protocol mechanism to establish a private channel that could be used for secure transactions, such as an encryption key exchange. Thus, a separate private hardware channel is generally required to transfer the unique keys. However, the use of a separate hardware channel increases the complexity of a system, requiring that an appropriate hardware channel be established between any devices that may be involved in secure transactions.